// 纯函数
// 纯函数是这样一种函数，即相同的输入，永远会得到相同的输出，而且没有任何可观察的副作用

// slice 纯函数 / splice 不纯的函数
export {}
let arr: number[] = [1, 2, 3, 4, 5]

// slice相同的输入总能得到同样的输出，且不改变原数组
console.log(arr.slice(0, 3))
console.log(arr.slice(0, 3))
console.log(arr.slice(0, 3))
console.log(arr)

// splice相同的输入得到不同的输出，会改变原数组
console.log(arr.splice(0, 3))
console.log(arr.splice(0, 3))
console.log(arr.splice(0, 3))
console.log(arr)

// 求和纯函数
function getSum (n1: number, n2: number): number {
  return n1 + n2
}
console.log(getSum(1, 2))
console.log(getSum(1, 2))
console.log(getSum(1, 2))
